package cn.kz.hrm.controller;

import cn.kz.hrm.util.AjaxResult;
import cn.kz.hrm.util.RedisUtils;
import org.springframework.web.bind.annotation.*;

/**
 * redis缓存。
 */
@RestController
@RequestMapping("/redis")
public class RedisController {

    /*
        @RequestParam 传输的是单个的值。
        @RequestBody  用来接收的都是对象
        @PathVariable 接收单个
     */

    /**
     * 存储key和value。redis。
     * @param key
     * @param value
     * @return
     */
    @RequestMapping(value = "/set",method = RequestMethod.POST)
    public AjaxResult setRedis(@RequestParam("key") String key,@RequestParam("value") String value){
        //设置redis。
        RedisUtils.INSTANCE.set(key, value);
        return AjaxResult.me();
    }

    /**
     * 根据redis中的key值获取，value。
     * @param key
     * @return
     */
    @RequestMapping(value = "/get/{key}",method = RequestMethod.GET)
    public AjaxResult getRedis(@PathVariable("key") String key){
        String value = RedisUtils.INSTANCE.get(key);
        return AjaxResult.me().setResultObj(value);
    }

    /**
     * 根据key删除redis，用于对数据crud之后对redis数据进行删除或者重置。
     * @param key
     * @return
     */
    @RequestMapping(value = "/delete/{key}",method = RequestMethod.GET)
    public AjaxResult deleteRedis(@PathVariable("key") String key){
        RedisUtils.INSTANCE.delete(key);
        return AjaxResult.me();
    }


    @RequestMapping(value = "/setex",method = RequestMethod.POST)
    public AjaxResult setRedisOutTime(@RequestParam("key") String key,@RequestParam int time,@RequestParam("value") String value){
        //设置redis。
        RedisUtils.INSTANCE.set(key,time, value);
        return AjaxResult.me();
    }

}
